package com.jmyd.commons.base.controller;

import com.jmyd.commons.base.dto.PageParam;
import com.jmyd.commons.base.vo.Result;

import java.io.Serializable;

/**
 * IBaseController
 *
 * @author : samphin
 * @date : 2019/8/22 10:09
 */
public interface IBaseController<PK extends Serializable, D> {

    /**
     * 创建
     *
     * @param dto
     * @author samphin
     * @date 2021-2-3 10:29:47
     */
    default Result<?> save(D dto) {
        return null;
    }

    /**
     * 修改
     *
     * @param dto
     * @author samphin
     * @date 2021-2-3 10:29:47
     */
    default Result<?> update(D dto) {
        return null;
    }

    /**
     * 删除
     *
     * @param id
     */
    default Result<?> delete(PK id) {
        return null;
    }

    /**
     * 根据条件列表查询
     *
     * @param queryParams
     * @author samphin
     * @date 2021-2-3 10:29:47
     */
    default Result<?> queryListByCondition(D queryParams) {
        return null;
    }

    /**
     * 分页查询
     *
     * @param queryDto 查询对象
     * @author samphin
     * @date 2021-2-3 10:29:47
     */
    default Result<?> queryPageList(PageParam queryDto) {
        return null;
    }

    /**
     * 查询详情
     *
     * @param id
     * @author samphin
     * @date 2021-2-3 10:29:47
     */
    default Result<?> queryOne(PK id) {
        return null;
    }
}
